草庐IT

c++ - ifstream : how to tell if specified file doesn\'t exist

全部标签

c++ - ifstream 无法打开

我正在使用VisualStudio2013所以我必须打开一个.ppm图像文件并对其进行一些处理,但是我试图用来读取数据的ifstream无法打开该图像文件。我很确定图像文件在工作目录中(我已经创建并阅读了一些简单的.txt文件以确保)。即使经过大量研究,我也无法弄清楚发生了什么。相关代码如下编辑:我添加了更多代码以了解我正在尝试做什么Image*PPMImageReader::read(std::stringfilename){std::stringline;intwidth,height,max_val;std::ifstreamsrc(filename,std::ios_base:

c++ - 手动输入文件名 ifstream

我可以在终端中手动输入文件名吗?例如,程序会询问我要打开哪个文件。我将手动输入“test.txt”,它会打开test.txt。但是,我的编译器发出以下错误:nomatchingfunctionforcallto'std::basic_ifstream::basic_ifstream(std::string&)'我的代码:intmain(){stringinput;cout如何手动输入文本文件名? 最佳答案 如果您使用的是较旧的(C++11之前的)编译器,则必须使用:ifstreamfile(input.c_str());虽然文件名是

C++ ifstream只读一个字的个数

所以我想从.txt文件中读取数字作为整数。文件.txt:hello123-abcworld456-def当前代码:intnumber;ifstreamfile("file.txt");while(!file.eof()){file>>number;//123,456}现在这显然行不通,我已经尝试解决这个“一段时间”,但我就是无法解决这个问题。 最佳答案 有多种方法可以做到这一点。您尝试过的方法不起作用,因为流中的读取位置没有类似数字的东西。因此输入将失败,流的失败位将被设置。您将永远循环,因为您只测试eof。Readthis获取更多

c++ - 为什么一个 `ifstream`可以同时打开读写呢?

今天看到一段有趣的代码:ifstreamfil;fil.open("ini.txt",std::ios::in|std::ios::out);我正要提示它的破烂,但令我惊讶的是我看到cppreference.com显然认为这是正确的:http://en.cppreference.com/w/cpp/io/basic_ifstream/openmode-specifiesstreamopenmode.Itisbitmasktype,thefollowingconstantsaredefined:in:openforreadingout:openforwriting据我所知,ifstrea

c++ - boost iostream : how to turn ifstream into memory mapped file?

我想要的是简单地打开文件作为内存映射文件进行读取-以便将来以更快的速度访问它(例如:我们打开文件读取它结束,等待并一次又一次地读取它)同时我希望该文件可以被其他程序修改,当他们修改它时,我希望我的ifstream也能修改。如何使用boostiostreams(或boostinterprocess)做这样的事情?我们可以只是tallos-嘿,这个文件应该为所有应用程序进行内存映射?所以我尝试这样的代码:#include#include#includeusingnamespaceboost::iostreams;intmain(intargc,char**argv){streamout;t

构建:找不到名称'$'

我正在使用VS2015。从TS1.8升级到2.4.1TS之后,找不到键入文件。Build:Cannotfindname'$'.tsconfig.json:{"compileOnSave":true,"compilerOptions":{"module":"none","allowJs":true,"outFile":"app.js","noImplicitAny":false,"noEmitOnError":true,"removeComments":true,"sourceMap":true,"target":"es5"}我该怎么办来解决这个问题?看答案通过在tsconfig.json文件中

c++ - 在不使用变量的情况下实例化 ifstream 对象

如果不将文件存储在变量中,我似乎无法打开它。我可以这样做:ifstreamblob("somefile");stringline;blob>>line;但是当我尝试这样做时:stringline;ifstream("somefile")>>line;编译器(clang)给出了这个错误:t.cpp:7:23:error:invalidoperandstobinaryexpression('ifstream'(aka'basic_ifstream')and'string'(aka'basic_string'))ifstream("thing")>>i;~~~~~~~~~~~~~~~~~^~

C++ ifstream::read() 和 C 数组

似乎普遍认为C数组不好,使用更智能的替代方案,如vector或C++字符串是可行的方法。这里没问题。话说回来,为什么ifstream的read()成员输入数据到一个char*...问题是:我可以单独使用STL以某种方式输入字节vector吗?一个相关的额外问题:您是否经常检查ios::badbit和ios::failbit,尤其是当您在该范围内使用动态分配的C字符串时?您是否在catch()中释放C字符串?感谢阅读。 最佳答案 您可以直接读入分配的vector(我无法从此处编译它,因此可能存在拼写错误或转置参数等......)但这个

c++ - 使用 ifstream 和 QtCreator 从当前目录读取文件

我将QtCreator用于没有Qt库的纯C++项目。我正在尝试打开这样的文件:fopen("text.txt","r");或ifstreamfin;fin.open("text.txt");但它不能像在VisualStudio中那样仅使用文件名,我必须传递完整路径才能打开文件...有人知道这是为什么吗?以及如何在不使用Qt库的情况下引用当前目录? 最佳答案 您可以使用QDir::current()来检查工作目录是否是您想要的。没有Qt你可以使用thesolutionTomAlinkedto.runsettings允许您配置它以从ID

c++ - 使用 ifstream 和 ofstream 与 cin 和 cout 的区别

我读到了fstream等等,前阵子。它说ifstream用于从文件中读取数据,而ofstream用于写入数据。我想知道,使用ifstream的本质是什么?/ofstream如果你可以使用cin.getline()获取数据和cout打印那些? 最佳答案 ifstream:从文件中读取的流类ofstream:写入文件的流类什么是文件?文件是存储信息的资源。例如,一个文本文件。现在,让我们看一个解释ofstream的例子。看下面的代码:#include#includeusingnamespacestd;intmain(){ofstream